#include <stdio.h>

// 求最大公约数

int main()
{

    int a , b ;

    int c , d , e;

    int i = 1 ;

    scanf("%d %d" , &a , &b) ;

    c = a > b ? a : b ; // 使用三元操作符进行判断,能够有效区分输入数字的大小,因为求余会因为大小而有所不同

    d = b < a ? b : a ;
        
    while (i) // 设立一个循环,因为i非0,所以是死循环
    {

        if (c % d != 0) // 设立判断,如果求余不是零,则运行
        {

            e = c % d ; // 赋值给第三个值,再向下运行

        }

        else
        {

            printf("%d" , d) ;

            break ;

        }

        if (d % e != 0) // 同上
        {

            c = d % e ;

        }

        else
        {

            printf("%d" , e) ;

            break ;
            
        }

        if (e % c != 0) // 同上
        {

            d = e % c ;

        }

        else
        {

            printf("%d" , c) ;

            break ;
            
        }
        
    }
    
    return 0 ;

}

// 这个是我大概看了一下别人的思路流程图得出自己尝试手打的
// 应该有很多繁琐的地方,比如循环的三个判断函数可以优化
// 在循环里面,我的思路是用三个变量循环求余,直到有一个求余得零就打印并跳出函数